#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

//int main()
//{
//	int a = 0;
//	int b = 0;
//	double c = 0.0;
//	scanf("%d%d",&a,&b);
//	c = sqrt(a * a + b * b);
//	printf("%lf", c);
//	return 0;
//}

//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	int i = 0;
//	int arr[20] = { 0 };
//	for (int i = 0; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//		if (arr[i] > 0)
//		{
//			a++;
//		}
//		else if (arr[i] < 0)
//		{
//			b++;
//		}
//		else
//		{
//			c++;
//		}
//	}
//	
//	printf("%d,%d,%d", a, b, c);
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	int j = 0;
//	int arr[4][4] = { 1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7 };
//	int sum = 0;
//	for (i = 0; i < 4; i++)
//	{
//		for (j = 0; j < 4; j++)
//		{
//			if(i==0||j==0||i==3||j==3)
//			sum = sum + arr[i][j];
//		}
//	}
//	printf("%d", sum);
//}


//struct stu
//{
//	char num[5];
//	char name[20];
//	float m;
//	float c;
//	float e;
//	float ave;
//}s[3] = { {"001","zhao",60,70,80} ,{"002","qian",70,80,90} ,{"003","sun",80,90,100}};
//int main()
//{
//	for (int i = 0; i < 3; i++)
//	{
//		s[i].ave = (s[i].c + s[i].e + s[i].m) / 3;
//		printf("%s---%f", s[i].name, s[i].ave);
//	}
//}


//int main()
//{
//	int a = 0;
//	int b = 0;
//	float x = 0.0;
//	scanf("%d%d", &a, &b);
//	x = (-b) / a;
//	printf("%f", x);
//}
//


//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	scanf("%d%d%d", &a, &b, &c);
//	int max = a > b ? a : b;
//	max = max > c ? max : c;
//	printf("%d", max);
//	return 0;
//}


//int main()
//{
//	int i = 0;
//	int j = 0;
//	int count = 0;
//	for (i = 100; i <= 200; i++)
//	{
//		for (j = 2; j <= sqrt(i); j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//		if (j > sqrt(i))
//		{
//			printf("%d ", i);
//			count++;
//		}
//	}
//	printf("%d", count);
//	return 0;
//}


//int main()
//{
//	int i = 0;
//	double ave = 0.0;
//	int sum = 0;
//	int arr[20] = { 0 };
//	for (i = 0; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	for (i = 0; i < 10; i++)
//	{
//		sum = sum + arr[i];
//	}
//	ave = sum / 10.0;
//	printf("%f", ave);
//	return 0;
//}


struct candidate
{
	int num;
	char name[20];
	int count;
}c[3] = { {1,"lf"} ,{2,"ly"} ,{3,"zh"}};
int main()
{
	int i = 0;
	char name[20] = { 0 };
	for (i = 1; i <= 10; i++)
	{
		scanf("%s", name);
		for (int j = 0; j < 3; j++)
		{
			if (strcmp(name, c[j].name) == 0)
			{
				c[j].count++;
			}
		}
	}
	for (i = 0; i < 3; i++)
	{
		printf("%s---%d\n", c[i].name, c[i].count);
	}
	return 0;
}


//int fun(char* str)
//{
//	int word = 1;
//	int i = 0;
//	while (*str)
//	{
//		if (*str == ' ')
//		{
//			word = 1;
//		}
//		else 
//		{
//			if (word == 1)
//			{
//				i++;
//				word = 0;
//			}
//		}
//		str++;
//	}
//	return i;
//}
//
//
//int main()
//{
//	char s[20] = { 0 };
//	gets(s);
//	int ret = fun(s);
//	printf("%d", ret);
//	return 0;
//
//}


//char* fun(char* arr, char* s)
//{
//	char* ret = s;
//	while (*arr)
//	{
//		if (*arr >= 'A' && *arr <= 'Z' || *arr >= 'a' && *arr <= 'z')
//		{
//			*s = *arr;
//			s++;
//		}
//		arr++;
//	}
//	return ret;
//}
//int main()
//{
//	char s[] = "                          ";
//	char c[20] = { 0 };
//	gets(c);
//	char* ret=fun(c,s);
//	printf("%s", ret);
//	return 0;
//}s